A portion of the disclosure of this patent document contains a computer program listing which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
This invention relates generally to a method for conserving memory space during program execution and more specifically to a method for conserving memory storage within an audio signal processor during an interpolation operation.
Interpolation programs and subroutines are known in the art for providing a gradual transition between two distinct data values, for instance, from a low setting to a high setting. It can be understood that if the difference between the two data values is too great, an instantaneous conversion of the low setting to the high setting results in signal distortion. The interpolation process allows the transition to be made gradually, and by so doing minimizes the signal distortion which may otherwise result from the transition.
Audio signal processors often require interpolation operations to vary the characteristics of audio information. Interpolation may be required between two widely varying values to generate special effects, or to ensure high quality audio performance. If the difference between the two levels is large and changed instantaneously (a process which is referred to as xe2x80x9cslammingxe2x80x9d), undesirable sound effects such as xe2x80x9cpopsxe2x80x9d or xe2x80x9cclicksxe2x80x9d can result. Interpolation allows the levels to be changed from one value to the other gradually, thereby reducing or eliminating the occurrence of signal distortion and the unwanted audio effects.
A downside of implementing an interpolation process is that it typically requires additional memory space to store the interpolation commands and additional data needed to perform the interpolation process. Audio processors, as most other signal processors, have limited memory resources. It is therefore desirable to reduce the memory space needed during implementation of interpolation operations while reducing the occurrences of the aforementioned xe2x80x9cslammingxe2x80x9d effects.
The present invention provides a method for conserving memory storage during the execution of a interpolation operation while simultaneously reducing the occurrence of signal distortion. The method is accomplished in one embodiment using a pool of interpolation commands. When a interpolation operation is requested, it is performed using one of the pooled interpolation commands. If none of the pooled interpolation commands are available, for instance when all are simultaneously active, the interpolation command having the smallest difference between its interpolated value and final value is selected, and its interpolated value converted to its final value. By identifying and converting the data value which is closest to its final value, the aforementioned slamming effects are reduced. The selected interpolation command is then reassigned to interpolate the requested data. The reuse of the pooled interpolation commands saves memory space since an existing command or routine is used to carry out the requested interpolation. The need to allocate memory space to another interpolation command or routine is averted.
The invention will be better understood when considered in light of the following drawings and detailed description.